Fehlermeldung “Innerhalb von Strukturen sind keine generischen Typdefinitionen erlaubt”
Folgende Fehlermeldung erscheint eventuell bei Typdeklarationen:
Innerhalb von Strukturen sind keine generischen Typdefinitionen erlaubt.
Folgende Typdeklaration ruft diesen Fehler hervor:
TYPES: BEGIN OF ts_daten,
vbeln TYPE vbeln,
auart TYPE auart,
t_vbap TYPE STANDARD TABLE OF vbap,
END OF ts_daten.
Häh? und nun?
Die Aussage ist klar: Die Deklaration TYPE STANDARD TABLE OF ist anscheinend eine generische Datendeklaration. Aber wie macht man daraus eine spezielle??
In der Dokumentation ist der folgende Satz zu finden:
Ein mit TYPES – TABLE OF oder im ABAP Dictionary definierter Tabellentyp ist generisch, wenn der primäre Tabellenschlüssel nicht oder unvollständig angegeben ist oder wenn der Tabellentyp generisch bezüglich sekundären Tabellenschlüssel ist.
Lösung
Das bedeutet, dass der Schlüssel für die Tabelle durch den Zusatz WITH { DEFAULT | NON-UNIQUE | UNIQUE } KEY spezifiziert werden muss:
t_vbap TYPE STANDARD TABLE OF vbap WITH DEFAULT KEY,
Übrigens
Die Fehlermeldung erscheint nur bei der Typdefinition. Eine Datendeklaration kann exakt so, wie oben beschrieben, vorgenommen werden:
DATA: BEGIN OF ls_daten, vbeln TYPE vbeln, auart TYPE auart, t_vbap TYPE STANDARD TABLE OF vbap, END OF ls_daten.
- Meine Eclipse-Plugins - 22. November 2024
- Interview mit Björn Schulz (Software-Heroes.com) - 3. September 2024
- Daten aus ALV ermitteln - 3. September 2024